public class HanNuo {

    public static void move(char x, char y)
    {
        System.out.println(x + "->" + y);
    }

    public static void hanoi(int n, char a, char b, char c)
    {
        if (n == 1)
        {
            move(a, c);
        }
        else
        {
            hanoi(n - 1, a, c, b);//将A座上的n-1个盘子借助C座移向B座
            move(a, c);//将A座上最后一个盘子移向C座
            hanoi(n - 1, b, a, c);//将B座上的n-1个盘子借助A座移向C座
        }
    }
    //move中的实参与hanoi函数中的形参相对应，而hanoi函数中形参a，b，c所对应的值也是在有规律的变化
    public static void main(String[] args) {
        int n = 5;
        hanoi(n, 'A', 'B', 'C');
    }

}
